1. Field of the Invention
This invention relates generally to the field of network switching and more specifically to a switch architecture capable of transmitting packets between ports in which a switch memory for temporarily storing packets while forwarding decisions are made is configured as a pool that is available to all ports in the switch.
2. Description of the Related Art
Network switches provide a solution to client congestion problems by switching network traffic at high speeds between ports, rather than having every user broadcast to every other user in the network. Network switches enable information (formatted into packets) to be switched from one port to another port based upon the Ethernet addresses embedded in the packets. Conventional network switches are formed with switch-nodes that are interconnected to each other. Each switch-node typically has a physical link to an interconnection matrix which switches data between different switch-nodes. The interconnection matrix between switch-nodes typically incorporate either a cross-bar or a shared-bus architecture. The cross-bar and shared-bus architectures permit the forwarding of packets from a switch-node to another switch-node once packet switching decisions are made. The packet switching decisions are performed by processing hardware incorporated within each switch-node. Additionally, a local static random access memory (SRAM) for temporarily storing ingress and egress packets is incorporated within each of the conventional switch nodes.
Referring first to FIG. 1, there is seen a conventional switch system 100 which is based on the cross bar architecture and which includes switch-nodes 105, 110, 115 and 120. Switch-node 105 includes a local SRAM 105a that is configured for storing ingress and egress packets and is organized according to a First-In/First-Out (FIFO) discipline in order to prevent inversions in the packet order. A controller 105b controls the FIFO queue of packets which are temporarily stored in the local SRAM 105a. The processing logic 105c performs switching decisions on the packets. A plurality of ports 105d receive and transmit the ingress and egress packets, respectively. Switch-node 105 is further coupled to the cross-bar switch 125 for permitting packets to be transmitted to other switch-nodes once switching decisions are made by the processing logic 105c. Similarly, each of the other switch-nodes (e.g., nodes 110, 115, or 120) includes a local SRAM, controller, processing logic, and ports, and are likewise coupled to the cross-bar switch 125. The cross-bar switch 125 is based on a meshed interconnection matrix design and permits a packet from any port on a switch-node to be forwarded to a port of any other switch-node once switching decisions are made for the packet.
Packets that must be switched between switch-nodes are required to travel via the cross-bar switch 125. A packet destined for a busy port in another switch-node can thus block other packets destined for other non-busy ports, thereby resulting in a xe2x80x9chead-of-linexe2x80x9d blocking problem. For example, assume the packets 130 and 135 both originate from node 115 whereby packet 130 is destined for node 110 while packet 135 is destined for node 120. Assume further that packet 130 is ahead of packet 135 in the FIFO queue of SRAM 115a of node 115. In this example, the destination port of packet 130 in node 110 is busy and is unable to accept incoming packets, while the destination port of packet 135 in node 120 is not busy. Thus, packet 130 is required to wait until the destination port in node 110 is available to receive data. Transmission of packet 135 is also blocked until packet 130 is transmitted, even though the destination port of packet 135 is ready. Thus, the head-of-line blocking problem can lead to undesirable performance such as packet transmission delay.
FIG. 2 illustrates a switch system 150 which incorporates the shared-bus architecture and which includes switch-nodes 160, 165, 170, and 175. A shared-bus 185 connects switch-nodes 160, 165, 170, and 175 together and is local to a PCB card. Each of the switch-nodes 160-175 includes elements performing similar functions as those in switch-nodes 105-120 of FIG. 1. For example, switch-node 160 includes a local SRAM 160a, FIFO controller 160b, processing logic 160c, ports 160d and connections to shared-bus 185 for permitting packets to be transmitted to other switch-nodes once switching decisions are made by the processing logic 160c. Similarly, the other switch-nodes (e.g., nodes 165, 170, or 175) each include a local SRAM, controller, processing logic, ports and connections coupled to the shared bus 185. The switch-nodes 160-175 follow a standard arbitration scheme (e.g., time division multiplexing, round-robin arbitration, etc.) so that a switch-node can access the shared bus 185 and transmit a packet via the shared-bus 185 to another switch-node.
A disadvantage of the shared-bus design in FIG. 2 is as follows. By adding switch-nodes to the shared-bus 185, the load of the shared-bus is increased. An increased load limits the frequency of operation of the network switch 150, thereby limiting switching capacity. Additionally, due to the shared configuration of the bus 185, blocking effects may occur in the shared-bus switch system 150 of FIG. 2. One example of such blocking effects is the head-of-line blocking problem which was discussed above.
The cross-bar switch system 100 (FIG. 1) and the shared-bus switch system 150 (FIG. 2) also have the following disadvantages. As stated above, switch-nodes 105-120 (FIG. 1) and switch-nodes 160-175 (FIG. 2) each include, respectively, a local SRAM for storing ingress and egress packets before packets are transmitted to other switch-nodes. However, SRAM devices are expensive (as compared to dynamic random access memory (DRAM) devices). In the conventional switch systems 100 and 150 (FIG. 1 and FIG. 2, respectively), SRAM devices of sufficient sizes can be implemented, but this option leads to higher cost.
Alternatively, the sizes of the SRAM devices can be made smaller to reduce cost, but decreasing the memory sizes will limit the bandwidth capacity of the switch system. A limited bandwidth capacity leads to a limited switching capability. Additionally, the conventional switch systems 100 and 150 require additional hardware to implement the switch-nodes in the network, thereby resulting in additional implementation costs.
One conventional approach is to use chassis-based designs to implement the switch-nodes and the switch systems. However, chassis-based designs also increase the overall cost of switch systems. In addition, chassis-based designs have poorer integration characteristics, since these designs require a given amount of logic to be implemented in multiple cards. Additional logic is then needed to serve as an interface between the multiple cards.
Accordingly, there is a need for a switch memory architecture which overcomes the above-mentioned deficiencies of conventional switch systems and which is less expensive to implement. The present invention fulfills this need, among others.
An object of the invention is to prevent the occurrence of the head-of-line blocking problem of the prior art.
Another object of the invention is to provide a switch system that is less expensive than conventional systems and that has a higher bandwidth and switching capability than conventional systems.
Another object of the invention is to provide a switch system that can easily incorporate advances in DRAM technology (e.g., higher speed, higher bandwidth or higher capacity).
Another object of the invention is to provide a switch system which permits memory to be dynamically allocated between switch ports.
Another object of the invention is to provide a switch system capable of higher integration and lower implementation costs as compared to conventional systems.
Another object of the invention is to provide a switching logic which can be implemented with smaller PCBs, which lead to small form factor systems.
Another object of the invention is to provide a switch system capable of permitting the achievement of wire speed switching for packets of any size between 64 bytes to about 1518 bytes, and up to about 9 k bytes for jumbo packets.
Another object of the invention is to provide a switch system which can be easily scaled by number of ports and/or amount of memory without limiting the system""s switching capacity.
The present invention fulfills these objects, among others. According to one aspect, an apparatus according to the invention broadly provides a distributed memory switch system for transmitting packets from source ports to destination ports, comprising a plurality of ports including a source port and a destination port wherein a packet is transmitted from the source port to the destination port; a memory pool; and an interconnection stage coupled between the plurality of ports and the memory pool such that the interconnection stage permits a packet to be transmitted from the source port to the destination port via the memory pool.
In the immediate foregoing distributed memory switch system, the interconnection stage comprises a switch stage connected to the plurality of ports and a memory switch connected to the switch stage and to the memory pool. The switch stage and the memory switch can be implemented by one or more ASICs.
The present invention further provides a switch system for switching packets between ports, comprising an interconnection stage configured to transmit packets between ports; and a memory pool coupled to the interconnection stage for storing packets which are received from the ports.
According to another aspect of the invention, the present invention broadly provides a method for transmitting packets from source ports to destination ports, comprising the steps of: detecting the arrival of a packet from a source port; determining the address locations in a memory pool for buffering the packet after the packet is received from the source port of the packet; buffering the packet in the memory pool after the packet is received from the source port; retrieving the packet in the memory pool; and transmitting the packet from the memory pool to the destination port of the packet.
The list of objects and possible advantages and benefits above is not necessarily exhaustive and further advantages and benefits will become apparent upon studying the detailed description of the invention provided hereinbelow.